/*
* Author: Chris Seguin
*
* This software has been developed under the copyleft
* rules of the GNU General Public License. Please
* consult the GNU General Public License for more
* details about use and distribution of this software.
*/
package org.acm.seguin.ide.jbuilder.refactor;
import org.acm.seguin.ide.common.action.ExtractMethodAction;
import org.acm.seguin.ide.common.action.PushDownFieldAction;
import org.acm.seguin.ide.common.action.PushDownMethodAction;
import org.acm.seguin.ide.common.action.PushUpAbstractMethodAction;
import org.acm.seguin.ide.common.action.PushUpFieldAction;
import org.acm.seguin.ide.common.action.PushUpMethodAction;
import org.acm.seguin.ide.common.action.RenameFieldAction;
import org.acm.seguin.ide.common.action.RenameParameterAction;
/**
* Description of the Class
*
*@author Chris Seguin
*/
public class MenuBuilder {
/**
* Description of the Method
*
*@return Description of the Returned Value
*/
public static ActionGroup build()
{
ActionGroup group = new ActionGroup("Refactorings");
group.setPopup(true);
group.add(buildType());
group.add(buildMethod());
group.add(buildField());
return group;
}
/**
* Description of the Method
*
*@return Description of the Returned Value
*/
public static ActionGroup buildMethod()
{
ActionGroup group = new ActionGroup("Method Refactorings");
group.setPopup(true);
group.add(new PushUpMethodAction());
group.add(new PushUpAbstractMethodAction());
group.add(new PushDownMethodAction());
group.add(new RenameParameterAction());
group.add(new ExtractMethodAction());
return group;
}
/**
* Description of the Method
*
*@return Description of the Returned Value
*/
public static ActionGroup buildField()
{
ActionGroup group = new ActionGroup("Field Refactorings");
group.setPopup(true);
group.add(new RenameFieldAction());
group.add(new PushUpFieldAction());
group.add(new PushDownFieldAction());
return group;
}
/**
* Description of the Method
*
*@return Description of the Returned Value
*/
private static ActionGroup buildType()
{
ActionGroup group = new ActionGroup("Type Refactorings");
group.setPopup(true);
group.add(new JBuilderRenameClassAction(null));
group.add(new JBuilderMoveClassAction(null));
group.add(new JBuilderAddParentClassAction(null));
group.add(new JBuilderAddChildClassAction(null));
group.add(new JBuilderRemoveClassAction(null));
group.add(new JBuilderExtractInterfaceAction(null));
return group;
}
}